//package org.ricks.orm.mongodb.asm;
//
//import org.ricks.common.asm.*;
//
//import java.io.FileInputStream;
//import java.util.Objects;
//
///**
// * @Author ricks [chenwei]
// * @Version [v1.0]
// * @CreateTime 2024-06-11   17:25
// * @Description TODO
// */
//
//public class FieldModifier {
//    public static void main(String[] args) throws Exception {
//        String path = Objects.requireNonNull(HelloWorldAnalysisCore.class.getResource("")).getPath();
//        System.err.println(path);
//
//        String relative_path = path + "HelloWorld.class";
//
//        FileInputStream fileInputStream = new FileInputStream(relative_path);
//        ClassReader cr = new ClassReader(fileInputStream); // 替换为你的类全名
//        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
//        ClassVisitor cv = new FieldModifyingClassVisitor(cw);
//        cr.accept(cv, ClassReader.SKIP_DEBUG);
//
//
////        byte[] data = cw.toByteArray();
//////        // 使用data中的字节码...
//        HelloWorld helloWorld = new HelloWorld();
//        helloWorld.test(1,2);
//    }
//
//    static class FieldModifyingClassVisitor extends ClassVisitor {
//        public FieldModifyingClassVisitor(ClassVisitor cv) {
//            super(Opcodes.ASM9, cv);
//        }
//
//        @Override
//        public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) {
//            FieldVisitor fv = cv.visitField(access, name, desc, signature, value);
//            if ("a".equals(name) && Objects.nonNull(value)) { // 检查字段名
//                // 修改字段值
//                return new FieldVisitor(Opcodes.ASM9, fv) {
//                    @Override
//                    public void visitEnd() {
//                        // 在字段数据结束前，你可以进行修改值的操作
//                        // 例如，修改为新的值：
//                        System.err.println("正在修改的字段 name:" + name + " , desc:" + desc + " , signature:" + signature);
//
//                        System.err.println(value);
//                        // 然后调用super.visitEnd();
//                        super.visitEnd();
//                    }
//                };
//            }
//            return fv;
//        }
//    }
//}